package com.bootdo.common.service;

import com.bootdo.common.domain.FileDO;

import java.util.List;
import java.util.Map;

import org.springframework.web.multipart.MultipartFile;

/**
 * 文件上传
 * 
 * @author chglee
 * @email 1992lcg@163.com
 * @date 2017-09-19 16:02:20
 */
public interface FileService {
	
	FileDO get(Long id);
	
	List<FileDO> list(Map<String, Object> map);
	
	int count(Map<String, Object> map);
	
	int save(FileDO sysFile);
	
	int update(FileDO sysFile);
	
	int remove(Long id);
	
	int batchRemove(Long[] ids);

	/**
	 * 判断一个文件是否存在
	 * @param url FileDO中存的路径
	 * @return
	 */
    Boolean isExist(String url);
    /**
     * TODO 如果涉及到下载,需要保留上传文件自身的名称
     * @Description: 通用文件上传接口
     * @param file
     * @param fileName 自定义的文件名称,为空时取上传文件自身名称
     * @return
     * @version: 2018年12月20日 下午4:54:03
     * @author: zhouwc
     */
    FileDO saveUploadFile(MultipartFile file, String custFileName);
    /**
     * 
     * desc: 删除图片(删除记录和图片文件)
     * @param fileDO
     * @return
     * @version: 2018年12月21日 上午9:06:57
     * @author: zhouwc
     */
	int remove(FileDO fileDO);
	
	List<FileDO> getFormFiles(Integer formId, String formName);
	/**
	 * 
	 * @Description: 删除表单关联的文件(删除关联记录,文件记录,文件)
	 * @param key
	 * @return
	 * @version: 2018年12月27日 上午9:39:09
	 * @author: zhouwc
	 */
	int removeFormFile(String key);
	
}
